Pintos Operating System
An operating system created with a group of 3 people in Spring 2019 for CS 162 (Operating Systems) at UC Berkeley. Although the skeleton of the operating system was provided for us, most of the major features (multithreading, user programs, and file systems) were implemented by us.
The major features we implemented were:
- Priority scheduling of threads, with priority donation when waiting on synchronization primitives and efficient sleeping
- Option to schedule threads via a multilevel feedback queue
- Support for user programs with argument passing
- Process control syscalls (e.g. exec, wait), and thread safe filesystem syscalls (e.g. read, write) which allow multiple simultaneous filesystem accesses
- A Unix-like filesystem including a buffer cache, extensible files, and graceful handling of subdirectories
Of course, there are many subtle implementation details and lots of planning that went into the project that I won’t post publicly, due to a variant of this project being quite common across universities.